package com.kiki.album.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.kiki.common.annotation.Excel;
import com.kiki.common.core.domain.BaseEntity;

/**
 * 专辑信息对象 album
 * 
 * @author 林志毅
 * @date 2025-01-08
 */
public class Album extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 专辑ID */
    private Long albumId;

    /** 专辑名称 */
    @Excel(name = "专辑名称")
    private String albumName;

    /** 歌手 */
    @Excel(name = "歌手")
    private String singer;

    /** 封面URL */
    @Excel(name = "封面URL")
    private String imgUrl;

    /** 专辑描述 */
    @Excel(name = "专辑描述")
    private String description;

    /** 发行公司 */
    @Excel(name = "发行公司")
    private String company;

    /** 发行日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发行日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date releaseDate;

    public void setAlbumId(Long albumId) 
    {
        this.albumId = albumId;
    }

    public Long getAlbumId() 
    {
        return albumId;
    }
    public void setAlbumName(String albumName) 
    {
        this.albumName = albumName;
    }

    public String getAlbumName() 
    {
        return albumName;
    }
    public void setSinger(String singer) 
    {
        this.singer = singer;
    }

    public String getSinger() 
    {
        return singer;
    }
    public void setImgUrl(String imgUrl) 
    {
        this.imgUrl = imgUrl;
    }

    public String getImgUrl() 
    {
        return imgUrl;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setCompany(String company) 
    {
        this.company = company;
    }

    public String getCompany() 
    {
        return company;
    }
    public void setReleaseDate(Date releaseDate) 
    {
        this.releaseDate = releaseDate;
    }

    public Date getReleaseDate() 
    {
        return releaseDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("albumId", getAlbumId())
            .append("albumName", getAlbumName())
            .append("singer", getSinger())
            .append("imgUrl", getImgUrl())
            .append("description", getDescription())
            .append("company", getCompany())
            .append("createTime", getCreateTime())
            .append("releaseDate", getReleaseDate())
            .toString();
    }
}
